package org.berlin.octane2m.filesys;

/**
 * This class contains the main program of the File System.  It consists of
 * a loop that gets messages requesting work, carries out the work, and sends
 * replies.
 *
 * The entry points into this file are:
 *   main:  main program of the File System
 *   reply: send a reply to a process after the requested work is done
 *
 */
public class FSMain {

    /**
     * This is the main program of the file system.  The main loop consists of
     * three major activities: getting new work, processing the work, and sending
     * the reply.  This loop never terminates as long as the file system runs.
     */
    public void main() {
        
    }
 
    /**
     * Normally wait for new input.  However, if 'reviving' is
     * nonzero, a suspended process must be awakened.
     */   
    public void getWork() {
        
    }
    
    /**
     * Initialize the buffer pool. 
     */
    public void bufPool() {
        
    }
    
    /**
     * Send a reply to a user process. It may fail (if the process has just
     * been killed by a signal), so don't check the return code.  If the send
     * fails, just ignore it.
     */
    public void reply(int whom, int result) {
        
    }
    
    /**
     * Initialize the process table with help of the process manager messages. 
     * Expect one message for each system process with its slot number and pid. 
     * When no more processes follow, the magic process number NONE is sent. 
     * Then, stop and synchronize with the PM.
     */
    public void fsInit() {
        
    }
    
    /**
     * Ask kernel for an integer valued boot environment variable. 
     */    
    public void igetenv(int key, int optional) {       
    }
        
    /**
     *Allocate a RAM disk with size given in the boot parameters. If a RAM disk 
     * image is given, the copy the entire image device block-by-block to a RAM 
     * disk with the same size as the image.
     * If the root device is not set, the RAM disk will be used as root instead. 
     */
    public void loadRam() {        
    }
    

    /**
     * Initialize the super_block table. 
     */
    public void loadSuper() {
    
    }
    
} // End of the class //
